今天也是帶來 Command Injection 的 DVWA 實戰
我們會先看到這個頁面
一樣先看 source code
這個 source code 看起來是會對我們輸入的ip做 ping的動作
如果作業系統是Windows(php_uname('s')檢查),則使用
ping
指令,否則使用ping -c 4
的指令(在Unix/Linux系統上通常使用的ping指令,它會發送4個ICMP封包)
先輸入 8.8.8.8
看看
那我們試試用 8.8.8.8
跟 ;
來看看能不能執行其他的系統命令
我們可以看到 ls
被執行了
我們就可以透過這種方式執行其他的系統命令
像
這次他把 &&
跟 ;
都用空字元替換掉了
既然他過濾掉了 &&
跟 ;
那我們換一個連接符
||
: 前面的指令執行不了的話換後面的指令
另一個方法
過濾掉 ;
連接符就變 &&
了
看 source code
注意 '| ' =>
這裡是只過濾有空格的 |
, 所以如果我們把 8.8.8.8| ls
改成 8.8.8.8|ls
|
將第一個指令的輸出作為第二個指令的輸入
這裡直接從輸入字串當中只接收數字,避免接收到其他的指令